Virtualization allows multiplexing of an underlying host machine between different virtual machines. The host machine allocates a certain amount of its resources to each of the virtual machines. Each virtual machine is then able to use the allocated resources to execute applications, including operating systems (referred to as guest operating systems). The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM). The hypervisor emulates the underlying hardware of the host machine, making the use of the virtual machine transparent to the guest operating system and to any users.
Virtual machines can be provided by a single host having its own dedicated storage or by a cluster of hosts that share a pool of storage. Some conventional systems install a dedicated file system that is optimized for managing disk images onto storage device. This dedicated file system may then perform all storage related operations for a hypervisor. However, reliance on such dedicated file systems may minimize an administrator's options for designing a virtualization system.